import request from "@/utils/request";

const LOG_BASE_URL = "/system/log";

const LogAPI = {
  /**
   * 获取操作日志分页列表
   *
   * @param queryParams 查询参数
   */
  getOpPage(queryParams: LogPageQuery) {
    return request<any, PageResult<LogPageVO[]>>({
      url: `${LOG_BASE_URL}/opPage`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 获取异常日志分页列表
   *
   * @param queryParams 查询参数
   */
  getExPage(queryParams: LogPageQuery) {
    return request<any, PageResult<LogPageVO[]>>({
      url: `${LOG_BASE_URL}/exPage`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 获取登陆日志分页列表
   *
   * @param queryParams 查询参数
   */
  getLoginPage(queryParams: LogPageQuery) {
    return request<any, PageResult<LoginPageVO[]>>({
      url: `${LOG_BASE_URL}/loginPage`,
      method: "get",
      params: queryParams,
    });
  },
};

export default LogAPI;

/**
 * 日志分页查询对象
 */
export interface LogPageQuery extends PageQuery {
  /** 搜索关键字 */
  keywords?: string;
  /** 操作时间 */
  createTime?: [string, string];
}

/**
 * 操作/异常日志分页VO
 */
export interface LogPageVO {
  /** 主键 */
  id: number;
  /** 日志模块 */
  module: string;
  /** 日志内容 */
  content: string;
  /** 请求路径 */
  requestUri: string;
  /** 请求方法 */
  method: string;
  /** IP 地址 */
  ip: string;
  /** 地区 */
  region: string;
  /** 浏览器 */
  browser: string;
  /** 终端系统 */
  os: string;
  /** 执行时间(毫秒) */
  executionTime: number;
  /** 操作人 */
  operator: string;
}

/**
 * 登陆日志分页VO
 */
export interface LoginPageVO {
  /** 主键 */
  id: number;
  /** 用户id */
  userId: number;
  /** 用户名 */
  username: string;
  /** IP 地址 */
  ip: string;
  /** 地区 */
  region: string;
  /** 浏览器 */
  browser: string;
  /** 终端系统 */
  os: string;
  /** 结果 */
  result: string;
  /** 备注 */
  remark: string;
}
